1. Technical Field
The present invention relates to hardware/software system architectures for forgiving applications and, more particularly, to error resilient system architectures combined with best-effort parallel software frameworks.
2. Description of the Related Art
A large class of traditional and emerging applications demonstrate a “forgiving” nature. In other words, they possess a significant degree of tolerance to imperfections in the computing platform on which they are executed, as well as the input data presented to them. Forgiving applications usually process large, redundant input data sets with significant noise in the input data, utilize statistical or probabilistic computations, and have a self-healing iterative refinement structure to their computations. In addition, the requirements on numerical exactness of their outputs is relaxed due to the limited perceptual capability of humans (audio and video), or since a golden result is either impossible or unnecessary. While digital signal processing, multimedia processing, and wireless communications have traditionally been considered as forgiving applications, emerging workloads such as web search and unstructured data analytics (and the larger class of applications referred to as recognition, mining and synthesis) take this forgiving nature to an unprecedented level.
The error forgiving nature of applications has been exploited, giving up perfect computations for various ends, such as improvements in power consumption or execution performance. For example, the error resiliency of probabilistic applications and their potentials for tolerating single-event upsets were has been implemented. Acceptability-oriented computing aims to reduce software development cost by making sure errors manifest only within acceptable ranges. Green is a framework for energy conscious computing that uses approximated computation to achieve energy efficiency with small degradation in QoS level. Best effort computing extensively utilizes an application's forgiving nature to achieve high degree of parallelism and performance. However, there are limits to how much a software-only approach can exploit the forgiving nature of an application.